
using System;

namespace SpotifyGenNHibernate.EN.Spotify
{
        public class ArtistaEN
        {
        /**
         *
         */

        private int id;

        /**
         *
         */

        private String nombre;

        /**
         *
         */

        private String biografia;

        /**
         *
         */

        private String imagen;

        /**
         *
         */

        private Spotify.DiscografiaEN discografia;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones;





        public virtual int Id { get { return id; } set { id = value;  } }


        public virtual String Nombre { get { return nombre; } set { nombre = value;  } }


        public virtual String Biografia { get { return biografia; } set { biografia = value;  } }


        public virtual String Imagen { get { return imagen; } set { imagen = value;  } }


        public virtual Spotify.DiscografiaEN Discografia { get { return discografia; } set { discografia = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> Canciones { get { return canciones; } set { canciones = value;  } }



        public ArtistaEN()
        {
        }



        public ArtistaEN(int id, String nombre, String biografia, String imagen, Spotify.DiscografiaEN discografia, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones)
        {
                this.init (id, nombre, biografia, imagen, discografia, canciones);
        }


        public ArtistaEN(ArtistaEN artista)
        {
                this.init (artista.Id, artista.Nombre, artista.Biografia, artista.Imagen, artista.Discografia, artista.Canciones);
        }

        private void init (int id, String nombre, String biografia, String imagen, Spotify.DiscografiaEN discografia, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones)
        {
                this.Id = id;


                this.Nombre = nombre;

                this.Biografia = biografia;

                this.Imagen = imagen;

                this.Discografia = discografia;

                this.Canciones = canciones;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                ArtistaEN t = obj as ArtistaEN;
                if (t == null)
                        return false;
                if (Id.Equals (t.Id))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == Id ? 0 : this.Id.GetHashCode ());
                return hash;
        }
        }
}
